/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entities;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;

/**
 *
 * @author root
 */
@Entity
@Table(name = "control_ropa_blanca_entregada")
@NamedQueries({
    @NamedQuery(name = "ControlRopaBlancaEntregada.findAll", query = "SELECT c FROM ControlRopaBlancaEntregada c"),
    @NamedQuery(name = "ControlRopaBlancaEntregada.findByAll", query = "SELECT c FROM ControlRopaBlancaEntregada c "
        + "WHERE c.ropaBlanca = :ropaBlanca AND c.cantidadEntregada = :cantidadEntregada AND c.fechaEntrega = :fechaEntrega "
        + "AND c.encargadoMovimiento = :encargadoMovimiento AND c.proveedor = :proveedor"),
    @NamedQuery(name = "ControlRopaBlancaEntregada.findByIdControlRopaBlancaEntregada", query = "SELECT c FROM ControlRopaBlancaEntregada c WHERE c.idControlRopaBlancaEntregada = :idControlRopaBlancaEntregada"),
    @NamedQuery(name = "ControlRopaBlancaEntregada.findByRopaBlanca", query = "SELECT c FROM ControlRopaBlancaEntregada c WHERE c.ropaBlanca = :ropaBlanca"),
    @NamedQuery(name = "ControlRopaBlancaEntregada.findByCantidadEntregada", query = "SELECT c FROM ControlRopaBlancaEntregada c WHERE c.cantidadEntregada = :cantidadEntregada"),
    @NamedQuery(name = "ControlRopaBlancaEntregada.findByFechaEntrega", query = "SELECT c FROM ControlRopaBlancaEntregada c WHERE c.fechaEntrega = :fechaEntrega"),
    @NamedQuery(name = "ControlRopaBlancaEntregada.findByEncargadoMovimiento", query = "SELECT c FROM ControlRopaBlancaEntregada c WHERE c.encargadoMovimiento = :encargadoMovimiento"),
    @NamedQuery(name = "ControlRopaBlancaEntregada.findByProveedor", query = "SELECT c FROM ControlRopaBlancaEntregada c WHERE c.proveedor = :proveedor")})
public class ControlRopaBlancaEntregada implements Serializable {
    @Basic(optional = false)
    @Column(name = "fechaEntrega")
    @Temporal(TemporalType.DATE)
    private Date fechaEntrega;
    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idControlRopaBlancaEntregada")
    private Integer idControlRopaBlancaEntregada;
    @JoinColumn(name = "ropaBlanca", referencedColumnName = "idRopa")
    @ManyToOne(fetch = FetchType.EAGER)
    private RopaBlanca ropaBlanca;
    @Basic(optional = false)
    @Column(name = "cantidadEntregada")
    private int cantidadEntregada;
    @Basic(optional = false)
    @Column(name = "encargadoMovimiento")
    private String encargadoMovimiento = "";
    @Basic(optional = false)
    @Column(name = "proveedor")
    private String proveedor;

    public ControlRopaBlancaEntregada() {
    }

    public ControlRopaBlancaEntregada(Integer idControlRopaBlancaEntregada) {
        this.idControlRopaBlancaEntregada = idControlRopaBlancaEntregada;
    }

    public ControlRopaBlancaEntregada(Integer idControlRopaBlancaEntregada, RopaBlanca ropaBlanca, int cantidadEntregada, Date fechaEntrega, String encargadoMovimiento, String proveedor) {
        this.idControlRopaBlancaEntregada = idControlRopaBlancaEntregada;
        this.ropaBlanca = ropaBlanca;
        this.cantidadEntregada = cantidadEntregada;
        this.fechaEntrega = fechaEntrega;
        this.encargadoMovimiento = encargadoMovimiento;
        this.proveedor = proveedor;
    }

    public Integer getIdControlRopaBlancaEntregada() {
        return idControlRopaBlancaEntregada;
    }

    public void setIdControlRopaBlancaEntregada(Integer idControlRopaBlancaEntregada) {
        Integer oldIdControlRopaBlancaEntregada = this.idControlRopaBlancaEntregada;
        this.idControlRopaBlancaEntregada = idControlRopaBlancaEntregada;
        changeSupport.firePropertyChange("idControlRopaBlancaEntregada", oldIdControlRopaBlancaEntregada, idControlRopaBlancaEntregada);
    }

    public RopaBlanca getRopaBlanca() {
        return ropaBlanca;
    }

    public void setRopaBlanca(RopaBlanca ropaBlanca) {
        RopaBlanca oldRopaBlanca = this.ropaBlanca;
        this.ropaBlanca = ropaBlanca;
        changeSupport.firePropertyChange("ropaBlanca", oldRopaBlanca, ropaBlanca);
    }

    public int getCantidadEntregada() {
        return cantidadEntregada;
    }

    public void setCantidadEntregada(int cantidadEntregada) {
        int oldCantidadEntregada = this.cantidadEntregada;
        this.cantidadEntregada = cantidadEntregada;
        changeSupport.firePropertyChange("cantidadEntregada", oldCantidadEntregada, cantidadEntregada);
    }

    public String getEncargadoMovimiento() {
        return encargadoMovimiento;
    }

    public void setEncargadoMovimiento(String encargadoMovimiento) {
        String oldEncargadoMovimiento = this.encargadoMovimiento;
        this.encargadoMovimiento = encargadoMovimiento;
        changeSupport.firePropertyChange("encargadoMovimiento", oldEncargadoMovimiento, encargadoMovimiento);
    }

    public String getProveedor() {
        return proveedor;
    }

    public void setProveedor(String proveedor) {
        String oldProveedor = this.proveedor;
        this.proveedor = proveedor;
        changeSupport.firePropertyChange("proveedor", oldProveedor, proveedor);
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idControlRopaBlancaEntregada != null ? idControlRopaBlancaEntregada.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ControlRopaBlancaEntregada)) {
            return false;
        }
        ControlRopaBlancaEntregada other = (ControlRopaBlancaEntregada) object;
        if ((this.idControlRopaBlancaEntregada == null && other.idControlRopaBlancaEntregada != null) || (this.idControlRopaBlancaEntregada != null && !this.idControlRopaBlancaEntregada.equals(other.idControlRopaBlancaEntregada))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "entities.ControlRopaBlancaEntregada[ idControlRopaBlancaEntregada=" + idControlRopaBlancaEntregada + " ]";
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.removePropertyChangeListener(listener);
    }

    public Date getFechaEntrega() {
        return fechaEntrega;
    }

    public void setFechaEntrega(Date fechaEntrega) {
        Date oldFechaEntrega = this.fechaEntrega;
        this.fechaEntrega = fechaEntrega;
        changeSupport.firePropertyChange("fechaEntrega", oldFechaEntrega, fechaEntrega);
    }
    
}
